/*
 * jxDao Project (2014)
 * by Denilson Edinaldo Pinto
 * LGPL
 * Copyright (C) 2014
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY), without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package org.jxDao.dao.filter;

/**
 * @author Denilson Edinaldo Pinto
 * @porject jxDao
 * @package org.jxDao.dao.filter
 * @date 11/04/2014 - 11:35:46
 */
enum FilterOperator {
	
	/**
	 * operator AND
	 */
	AND("AND"),
	
	/**
	 * operator BETWEEN
	 */
	BETWEEN("BETWEEN"),
	
	/**
	 * without operator
	 */
	CUSTOM(""),
	
	/**
	 * operator =
	 */
	EQUAL("="),
	
	/**
	 * operator >=
	 */
	GREATER_OR_EQUAL(">="),
	
	/**
	 * operator >
	 */
	GREATER_THAN(">"),
	
	/**
	 * operator LIKE UPPER(value)
	 */
	ILIKE("LIKE UPPER"),
	
	/**
	 * operator IN
	 */
	IN("IN"),
	
	/**
	 * operator <=
	 */
	LESS_OR_EQUAL("<="),
	
	/**
	 * operator <
	 */
	LESS_THAN("<"),
	
	/**
	 * operator LIKE
	 */
	LIKE("LIKE"),
	
	/**
	 * operator NOT BETWEEN
	 */
	NOT_BETWEEN("NOT BETWEEN"),
	
	/**
	 * operator <>
	 */
	NOT_EQUAL("<>"),
	
	/**
	 * operator NOT LIKE UPPER(value)
	 */
	NOT_ILIKE("NOT LIKE UPPER"),
	
	/**
	 * operator NOT IN
	 */
	NOT_IN("NOT IN"),
	
	/**
	 * operator NOT LIKE
	 */
	NOT_LIKE("NOT LIKE"),
	
	/**
	 * operator IS NOT NULL
	 */
	NOT_NULL("IS NOT NULL"),
	
	/**
	 * operator IS NULL
	 */
	NULL("IS NULL"),
	
	/**
	 * operator OR
	 */
	OR("OR"),
	
	/**
	 * operator GROUP BY
	 */
	GROUP_BY("GROUP BY "),
	
	/**
	 * operator ORDER BY
	 */
	ORDER_BY("ORDER BY ");
	
	private String value;
	
	/**
	 * @param value
	 */
	private FilterOperator(final String value) {
	
		this.value = value;
	}
	
	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Enum#toString()
	 */
	@Override
	public String toString() {
	
		return value;
	}
}
